Teorija automata[1] je dio teoretske informatike, čiji je zadatak proučavanje automata i problema, kojim se takvi automati bave.
Ova teorija je važna alatka u teorijama proračuna i kompleksiteta. Praktično se upotrebaljava kod izrade programskih prevodilaca (engl.: compiler) kao što su leksikalni skener (leksera) i parser.
Teorija automata je usko povezana sa teorijom formalnog jezika. U ovom kontekstu, automati se koriste kao konačni prikazi formalnih jezika koji mogu biti beskonačni. Automati se često klasifikuju prema klasi formalnih jezika koje mogu prepoznati, kao u Chomsky hijerarhiji, koja opisuje odnos ugniježđenja između glavnih klasa automata. Automati igraju glavnu ulogu u teoriji računanja, konstrukciji kompajlera, umjetnoj inteligenciji, raščlanjivanju i formalnoj verifikaciji.
Teorija apstraktnih automata razvijena je sredinom 20. stoljeća u vezi s konačnim automatima.[2] Teorija automata se u početku smatrala granom teorije matematičkih sistema, proučavajući ponašanje sistema diskretnih parametara. Rani rad u teoriji automata razlikovao se od prethodnog rada na sistemima korišćenjem apstraktne algebre za opisivanje informacionih sistema, a ne diferencijalnog računa za opisivanje materijalnih sistema.[3] Teoriju pretvarača konačnog stanja razvile su različite istraživačke zajednice pod različitim nazivima.[4] Raniji koncept Turingove mašine je takođe bio uključen u disciplinu zajedno sa novim oblicima automata sa beskonačnim stanjem, kao što su automati za spuštanje.